using System;
using System.Collections.Generic;

namespace HashSetExample // 命名空间
{
    public class Program
    {
        public static void Main(string[] args)
        {
            // 创建一个 HashSet
            HashSet<string> namesSet = new HashSet<string>();

            // 添加元素到 HashSet
            namesSet.Add("Alice");
            namesSet.Add("Bob");
            namesSet.Add("Charlie");
            namesSet.Add("Alice"); // 尝试添加重复元素

            // 打印 HashSet 中的元素
            Console.WriteLine("HashSet elements:");
            foreach (var name in namesSet)
            {
                Console.WriteLine(name);
            }

            // 检查 HashSet 是否包含特定元素
            if (namesSet.Contains("Bob"))
            {
                Console.WriteLine("\nHashSet contains 'Bob'.");
            }

            // 删除元素
            namesSet.Remove("Charlie"); // 删除 "Charlie"

            Console.WriteLine("\nAfter removing 'Charlie':");
            foreach (var name in namesSet)
            {
                Console.WriteLine(name);
            }

            // 检查 HashSet 的数量
            Console.WriteLine($"\nTotal elements in HashSet: {namesSet.Count}");

            // 清空 HashSet
            namesSet.Clear();
            Console.WriteLine($"Total elements after clearing: {namesSet.Count}"); // 输出: 0
        }
    }
}
